From 6af4450641204925ef0960548ee5c9de6be5df3d Mon Sep 17 00:00:00 2001 From: Richard Hult Date: Wed, 4 Feb 2009 10:40:40 +0100 Subject: [PATCH] Try to reduce risk of triggering the "beam sync" penalty in quartz --- gdk/quartz/gdkwindow-quartz.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c index 2a8e9ad4c3..5c01f7cf45 100644 --- a/gdk/quartz/gdkwindow-quartz.c +++ b/gdk/quartz/gdkwindow-quartz.c @@ -374,6 +374,9 @@ _gdk_windowing_window_process_updates_recurse (GdkWindow *window, toplevel_impl = (GdkWindowImplQuartz *)toplevel_private->impl; nswindow = toplevel_impl->toplevel; + /* In theory, we could skip the flush disabling, since we only + * have one NSView. + */ if (nswindow && ![nswindow isFlushWindowDisabled]) { [nswindow retain]; @@ -393,7 +396,10 @@ _gdk_windowing_window_process_updates_recurse (GdkWindow *window, g_free (rects); - [impl->view displayIfNeeded]; + /* NOTE: I'm not sure if we should displayIfNeeded here. It slows down a + * lot (since it triggers the beam syncing) and things seem to work + * without it. + */ } void @@ -414,6 +420,8 @@ _gdk_windowing_after_process_all_updates (void) { NSWindow *nswindow = tmp_list->data; + [[nswindow contentView] displayIfNeeded]; + [nswindow enableFlushWindow]; [nswindow flushWindow]; [nswindow release]; -- 2.30.2